package com.zxdemo.mybatis.dao;

import java.util.List;
import org.apache.ibatis.annotations.Mapper;
import org.apache.ibatis.annotations.Param;

import com.zxdemo.jpa.model.User;
@Mapper
public interface UserMapper {
		/**
		 * 根据id查询用户
		 * */
		User queryByUserId(@Param("user_id")  Long userId);
		/**
		 * 根据用户名查询用户
		 * */
		User queryByUserName(@Param("user_name") String userName);
		/**
		 * 分页查询所有用户,传入分页参数
		 * @param：#{offset}, #{limit}
		 * */
		List<User> queryListNoPage();
		/**
		 * 分页查询所有用户,传入分页参数
		 * @param：#{offset}, #{limit}
		 * */
		List<User> queryList(@Param("offset") int offset,@Param("limit") int limit);
		/**
		 * 查询用户总数
		 * */
		int queryTotal();
		/**
		 * 根据id查询用户的所有权限
		 * */
		List<String> queryAllPerms(@Param("user_id")  Long userId);
		/**
		 * 根据id查询用户的所有菜单Id
		 * */
		List<Long> queryAllMenuId(@Param("user_id")  Long userId);
		/**
		 * 新增用户
		 * */
		void save(User user);
		/**
		 * 更新用户信息
		 * */
		void update(User user);
		/**
		 * 修改密码
		 */
		int updatePassword(@Param("user_id")Long userId, @Param("user_password")String userPassword, @Param("new_password")String newPassword);
		/**
		 * 删除用户关联的所有信息，用户信息，用户角色关系信息
		 */
		int deleteBatch(Long[] userId);
		
		int deleteByUserId(@Param("user_id") long userId);
		
}